In the environment of an e-commerce application, such as a web server together with a series of web pages and web-based application, navigation of dynamic web pages is a complex task that usually requires a combination of various solutions to perform. These solutions make it difficult for a developer to determine the flow of a Web site and even more difficult to modify it.
In a Web site with dynamic content, herein referred to as a “dynamic Web site”, information is typically displayed to the user in the form of hypertext markup language or HTML code (both static HTML and dynamically generated HTML), and business logic is executed or followed based upon actions initiated by the users. For example, when making a purchase on a Web site a user is often presented with a summary order page. This is an HTML page that has been dynamically generated. It shows the items in their current order, total cost and pertinent information. When they press or click the “buy” button it causes business logic to be executed that will update databases, notify suppliers, etc. When these operations have successfully completed, a success page must be displayed to the user.
A problem with this approach is that the business logic is subject to a failure for a variety of reasons, some of which are expected such as an item being out of stock, and others which are unexpected such as databases not reachable. In a typical system, each of these errors requires specialized handling. Current solutions offered today usually employ a combination of solutions including: direct navigation via HTML links, dynamic navigation via client-side JavaScript, dynamic navigation via hand-written server side solutions including servlets, JSP tags, Cold Fusion tags, server side Java beans and ASP pages, to name only a few. However, all of these methods suffer the disadvantage of being complex and cumbersome to use, require lengthy development times, are inflexible to change and can rarely be modified on the fly to effect real-time changes to the business logic. Since they incorporate elements of both user interface design and business logic processing, current methods require considerable operator expertise in both of these areas, and prevent some, such as business analysts, from participating fully in the development of the e-commerce application.